Skip to content

feat: add user webhooks, SSE fallback, alert ack/snooze, and email delivery channel - #379

Merged
Abidoyesimze merged 8 commits into
Neurowealth:mainfrom
AbdulHameedAnofi:feat/user-webhooks-sse-alert-ack-and-email-channel
Aug 27, 2026
Merged

feat: add user webhooks, SSE fallback, alert ack/snooze, and email delivery channel#379
Abidoyesimze merged 8 commits into
Neurowealth:mainfrom
AbdulHameedAnofi:feat/user-webhooks-sse-alert-ack-and-email-channel

Conversation

@AbdulHameedAnofi

Copy link
Copy Markdown
Contributor

(#368, #369, #366, #367)

Closes #368
Closes #369
Closes #366
Closes #367

…livery channel (Neurowealth#368, Neurowealth#369, Neurowealth#366, Neurowealth#367)

- Add user-scoped outbound webhooks with per-user HMAC secrets, SSRF guards, and server-side event filters (Neurowealth#368)
- Add Server-Sent Events (SSE) fallback transport, single-use stream tickets, and resumable Last-Event-ID replay (Neurowealth#369)
- Add AlertFire / AlertAck models, snooze workflow, ackToken signing, and un-acknowledged escalation counting (Neurowealth#366)
- Add provider-abstracted Mailer (SES/SMTP), verified opt-in flow, and bounce/complaint webhook processing (Neurowealth#367)
- Add documentation (USER_WEBHOOKS.md, REALTIME_STREAMING.md, ALERTS.md, NOTIFICATIONS.md) and Jest unit test suite

Closes Neurowealth#368, Neurowealth#369, Neurowealth#366, Neurowealth#367
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@AbdulHameedAnofi Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

AbdulHameedAnofi and others added 7 commits August 27, 2026 14:53
…livery channel (Neurowealth#368, Neurowealth#369, Neurowealth#366, Neurowealth#367)

- Add user-scoped outbound webhooks with per-user HMAC secrets, SSRF guards, and server-side event filters (Neurowealth#368)
- Add Server-Sent Events (SSE) fallback transport, single-use stream tickets, and resumable Last-Event-ID replay (Neurowealth#369)
- Add AlertFire / AlertAck models, snooze workflow, ackToken signing, and un-acknowledged escalation counting (Neurowealth#366)
- Add provider-abstracted Mailer (SES/SMTP), verified opt-in flow, and bounce/complaint webhook processing (Neurowealth#367)
- Add documentation (USER_WEBHOOKS.md, REALTIME_STREAMING.md, ALERTS.md, NOTIFICATIONS.md) and Jest unit test suite

Closes Neurowealth#368, Neurowealth#369, Neurowealth#366, Neurowealth#367
…Neurowealth#368, Neurowealth#369, Neurowealth#366, Neurowealth#367)

- Relocate test suites from src/ to tests/unit/ matching Jest roots config
- Remove invalid vitest imports and rely on Jest test runner globals
- Add explicit const type assertions for FilterCondition operators
- Apply Prettier formatting across all updated src and test files
- Fix npm run build and npm run format:check CI pipeline steps
…Endpoint and EmailIdentity (Neurowealth#368, Neurowealth#367)

- Rebase branch onto latest upstream/main (including PR Neurowealth#378 schema updates)
- Align relation fields on model User for userWebhookEndpoints and emailIdentity
- Verify npx prisma validate and npx prisma generate succeed cleanly
@Abidoyesimze
Abidoyesimze merged commit 0231371 into Neurowealth:main Aug 27, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants